package com.hqq.action.state.memento;

/**
 * MementoTest
 *
 * 备忘录模式（Memento）
     主要目的是保存一个对象的某个状态，以便在适当的时候恢复对象
     通俗的讲下：假设有原始类A，A中有各种属性，A可以决定需要备份的属性，
     备忘录类B是用来存储A的一些内部状态
     类C呢，就是一个用来存储备忘录的，且只能存储，不能修改等操作

 * Created by heqianqian on 2017/3/11.
 */
public class MementoTest {
    public static void main(String[] args) {
        Original original = new Original("heqianqian");
        System.out.println(original.getValue());
        Storage storage = new Storage(original.createMemento());

        //修改
        original.setValue("xixixi");
        System.out.println(original.getValue());

        //还原
        original.restoreMemento(storage.getMemento());
        System.out.println(original.getValue());
    }
}
